Geavanceerde query parameters
De dynamische API ondersteunt verschillende query parameters om je API-aanroepen te verfijnen en filteren. Deze geavanceerde functies maken het mogelijk om specifieke data op te halen zonder uitgebreide client-side filtering te implementeren.
Wat is een query parameter?
Een query parameter is een stuk informatie die je kan toevoegen aan het einde van een URL om je request specifieker te maken. Bijvoorbeeld:
/api/products?fields=name,price
Alles achter de ?
wordt gezien als een query parameter. In het bovenstaande voorbeeld proberen we alleen de naam en
prijs van elk product op te halen.
Meerdere query parameters combineren
Je kunt meerdere query parameters in één request combineren door ze te scheiden met het &
teken.
/api/products?fields=name,price&limit=10
In het bovenstaande voorbeeld proberen we alleen de naam en prijs van maximaal 10 producten op te halen.
Basis query parameters
Voor alle collecties kun je de volgende basis query parameters gebruiken:
Parameter | Beschrijving | Voorbeeld |
---|---|---|
limit |
Maximum aantal items om terug te geven | /api/products?limit=10 |
offset |
Aantal items om over te slaan (voor paginering) | /api/products?offset=20 |
sort |
Velden waarop gesorteerd moet worden | /api/products?sort=price |
fields |
Selecteert specifieke velden om terug te geven | /api/products?fields=name,price |
Sortering
Je kunt je resultaten sorteren met de sort
parameter:
Oplopend sorteren
/api/products?sort=price
Aflopend sorteren (met voorafgaand minteken)
/api/products?sort=-price
Sorteren op meerdere velden
/api/products?sort=categoryId,-price
Dit sorteert eerst op categoryId (oplopend) en daarna op price (aflopend).
Paginering
Voor grote datasets kun je paginering gebruiken met de limit
en offset
parameters:
/api/products?limit=10&offset=0 // Eerste pagina
/api/products?limit=10&offset=10 // Tweede pagina
/api/products?limit=10&offset=20 // Derde pagina
Filtering op veldwaarden
Je kunt direct filteren op veldwaarden, bijvoorbeeld:
/api/products?price=19.99
Dit retourneert alle producten met een prijs van exact 19,99.
OR-filtering (meerdere waarden)
Je kunt filteren op meerdere mogelijke waarden door deze met komma's te scheiden:
/api/products?categoryId=1,2,3
Dit retourneert producten uit categorie 1 of 2 of 3.
Vergelijkingsoperatoren
Om nog extra controle te hebben over de data die geretourneerd wordt, kun je gebruik maken van vergelijkingsoperatoren:
Numeriek of datum:
Operator | Beschrijving | Voorbeeld |
---|---|---|
[gt] |
Groter dan | /api/products?price[gt]=20 |
[gte] |
Groter dan of gelijk aan | /api/products?price[gte]=20 |
[lt] |
Kleiner dan | /api/products?price[lt]=50 |
[lte] |
Kleiner dan of gelijk aan | /api/products?price[lte]=50 |
Tekst:
Operator | Beschrijving | Voorbeeld |
---|---|---|
[like] |
Overeenkomt met patroon | /api/products?name[like]=phone |
Let op: [like]
is hoofdletterongevoelig en zoek ook naar delen van woorden.
Voorbeelden van vergelijkingsoperatoren
Prijsbereik filteren
Om producten te vinden met een prijs tussen 20 en 50:
/api/products?price[gte]=20&price[lte]=50
Tekstzoekopdracht
Om producten te vinden met "phone" ergens in de naam (hoofdletterongevoelig):
/api/products?name[like]=phone
Datumfilters
Om bestellingen te vinden na een bepaalde datum:
/api/orders?orderDate[gt]=2024-01-01
Complexe zoekvoorbeelden
Producten in een prijsklasse en categorie
/api/products?categoryId=2&price[gte]=10&price[lte]=50&sort=-price
Dit zoekt naar alle producten in categorie 2, met een prijs tussen 10 en 50, gesorteerd op prijs (hoogste eerst).
Recente actieve bestellingen
/api/orders?status=active&orderDate[gt]=2024-01-01&sort=-orderDate
Dit zoekt naar actieve bestellingen geplaatst na 1 januari 2024, gesorteerd op datum (nieuwste eerst).